package cn.stylefeng.guns.sys.modular.system.mapper;

import cn.stylefeng.guns.sys.modular.rest.entity.RestDict;
import cn.stylefeng.guns.sys.modular.system.entity.AttendAuditBtyArea;
import cn.stylefeng.guns.sys.modular.system.model.params.AttendAuditBtyAreaAndBtyArchivesParam;
import cn.stylefeng.guns.sys.modular.system.model.params.AttendAuditBtyAreaParam;
import cn.stylefeng.guns.sys.modular.system.model.result.AttendAuditBtyAreaAndBtyArchivesResult;
import cn.stylefeng.guns.sys.modular.system.model.result.AttendAuditBtyAreaAuditStatusResult;
import cn.stylefeng.guns.sys.modular.system.model.result.AttendAuditBtyAreaResult;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author wjk
 * @since 2021-09-15
 */
public interface AttendAuditBtyAreaMapper extends BaseMapper<AttendAuditBtyArea> {

    /**
     * 获取列表
     *
     * @author wjk
     * @Date 2021-09-15
     */
    List<AttendAuditBtyAreaResult> customList(@Param("paramCondition") AttendAuditBtyAreaParam paramCondition);

    /**
     * 获取map列表
     *
     * @author wjk
     * @Date 2021-09-15
     */
    List<Map<String, Object>> customMapList(@Param("paramCondition") AttendAuditBtyAreaParam paramCondition);

    /**
     * 获取分页实体列表
     *
     * @author wjk
     * @Date 2021-09-15
     */
    Page<AttendAuditBtyAreaResult> customPageList(@Param("page") Page page, @Param("paramCondition") AttendAuditBtyAreaParam paramCondition);

    /**
     * 查询列表，返回人事档案主表，关联各个月考勤记录的查询
     *
     * @author wjk
     * @Date 2021-11-17
     */
    IPage<AttendAuditBtyAreaAuditStatusResult> customPageListAttendAudit(@Param("page") Page page, @Param("paramCondition") AttendAuditBtyAreaAuditStatusResult paramCondition);

    /**
     * 查询列表，返回人事档案主表，关联各个月考勤记录的查询,为导出查询，不分页
     *
     * @author wjk
     * @Date 2021-12-01
     */
    List<AttendAuditBtyAreaAuditStatusResult> listAttendAuditForExport(@Param("paramCondition") AttendAuditBtyAreaAuditStatusResult paramCondition);

    /**
     * 获取分页map列表
     *
     * @author wjk
     * @Date 2021-09-15
     */
    Page<Map<String, Object>> customPageMapList(@Param("page") Page page, @Param("paramCondition") AttendAuditBtyAreaParam paramCondition);

    /**
     * 修改，督导和店名下的员工为店长；
     * @author wjk
     * @Date 2021-09-15
     */
    boolean setEmployeeToDz( @Param("paramCondition") AttendAuditBtyArea attendAuditBtyArea);

    /**
     * 将原来店的店长数据清空
     * @param attendAuditBtyArea
     * @return
     */
    boolean setEmployeeToDzIsNull( @Param("paramCondition") AttendAuditBtyArea attendAuditBtyArea);

    /*
     * 根据考勤店长手机号获店的yaoma
     */
    Map<String, String> queryYaoMa(@Param("paramCondition") AttendAuditBtyArea attendAuditBtyArea);
    /**
     * 根据督导的名字,和店名模糊匹配获取督导下的店的列表-分页;
     *
     * @author wjk
     * @Date 2021-11-19
     */
    IPage<AttendAuditBtyArea> getShowListByDdNameLayuiPage(@Param("page") Page pageContext, @Param("userName") String userName, @Param("shopName") String shopName);
    /**
     * 若督导列表查询不到数据则查询大店长下的店铺，返回相应的数据
     * @Date 2021-11-19
     */
    IPage<AttendAuditBtyArea> getShowListByDdzNameLayuiPage(@Param("page") Page pageContext, @Param("userName") String userName, @Param("shopName") String shopName);

    /**
     * 查询运营经理的列表，
     *
     * @author wjk
     * @Date 2021-12-01
     */
    List<AttendAuditBtyArea> getYyjlList();

    List<Map> getList();


    /**
     * 查询列表，返回人事列表中的店，或者人员的一些影响的一些信息
     *
     * @author wjk
     * @Date 2021-12-23
     * @param attendAuditBtyAreaAndBtyArchivesParam
     * @param pageContext
     * @return
     */
    IPage<AttendAuditBtyAreaAndBtyArchivesResult> pagelistAttendAuditForImpact(@Param("page") Page pageContext, @Param("paramCondition") AttendAuditBtyAreaAndBtyArchivesParam attendAuditBtyAreaAndBtyArchivesParam);
    /**
     * 查询列表，返回人事列表中的店一些影响的一些信息
     *
     * @author wjk
     * @Date 2021-12-24
     * @param attendAuditBtyAreaAndBtyArchivesParam
     * @param pageContext
     * @return
     */
    IPage<AttendAuditBtyAreaAndBtyArchivesResult> pagelistAttendAuditForImpactShop(@Param("page") Page pageContext, @Param("paramCondition")  AttendAuditBtyAreaAndBtyArchivesParam attendAuditBtyAreaAndBtyArchivesParam);
    /**
     * 查询列表，返回人事列表中的人员的一些影响的一些信息
     *
     * @author wjk
     * @Date 2021-12-24
     * @param attendAuditBtyAreaAndBtyArchivesParam
     * @param pageContext
     * @return
     */
    IPage<AttendAuditBtyAreaAndBtyArchivesResult> pagelistAttendAuditForImpactEmp(@Param("page") Page pageContext, @Param("paramCondition")  AttendAuditBtyAreaAndBtyArchivesParam attendAuditBtyAreaAndBtyArchivesParam);










    /**
     * @author wjk
     * @Date 2021-12-27
     * 查询列表，返回人事列表中的店，或者人员的一些影响的一些信息
     * @param attendAuditBtyAreaAndBtyArchivesParam
     * @return
     */
    List<AttendAuditBtyAreaAndBtyArchivesResult> listAttendAuditForImpact(@Param("paramCondition")  AttendAuditBtyAreaAndBtyArchivesParam attendAuditBtyAreaAndBtyArchivesParam);

    /**
     * 查询列表，返回人事列表中的店一些影响的一些信息
     *
     * @author wjk
     * @Date 2021-12-27
     * @param attendAuditBtyAreaAndBtyArchivesParam
     * @return
     */
    List<AttendAuditBtyAreaAndBtyArchivesResult> listAttendAuditForImpactShop(@Param("paramCondition")  AttendAuditBtyAreaAndBtyArchivesParam attendAuditBtyAreaAndBtyArchivesParam);

    /**
     * 查询列表，返回人事列表中的人员的一些影响的一些信息
     *
     * @author wjk
     * @Date 2021-12-27
     * @param attendAuditBtyAreaAndBtyArchivesParam
     * @return
     */
    List<AttendAuditBtyAreaAndBtyArchivesResult> listAttendAuditForImpactEmp(@Param("paramCondition")  AttendAuditBtyAreaAndBtyArchivesParam attendAuditBtyAreaAndBtyArchivesParam);

    /**
     * 获取需要同步那个月的考勤信息
     * @author wjk
     * @Date 2022-02-21
     */
    List<RestDict> getSynchronousMonth();

    /**
     *  更新字典表中的同步月份信息
     * @param month
     * @return
     */
    Boolean updateSynchronousMonth(@Param("month")  String month);


//    /**
//     * 查询列表，返回人事列表中的店，或者人员的一些影响正常考勤的一些信息
//     * 查询缺少考勤店长的情况
//     *
//     * @author wjk
//     * @Date 2021-12-23
//     */
//
//    IPage listAttendAuditForImpactNoDz(@Param("page") Page pageContext, @Param("paramCondition") AttendAuditBtyAreaAuditStatusResult attendAuditBtyAreaAuditStatusResult);
}
